struct passwd与struct group |
您所在的位置:网站首页 › shell 结构体 › struct passwd与struct group |
一、struct passwd #include #include struct passwd { char *pw_name; /* 用户登录名 */ char *pw_passwd; /* 密码(加密后) */ __uid_t pw_uid; /* 用户ID */ __gid_t pw_gid; /* 组ID */ char *pw_gecos; /* 详细用户名 */ char *pw_dir; /* 用户目录 */ char *pw_shell; /* Shell程序名 */ };要取得某个使用者的信息时,有以下几个常用函数: struct passwd * getpwuid(uid_t uid); 知道用户uid(user id),用getpwuid获取用户相关信息。 此函数可用来获取用户名。 用法:char* fileUser = getpwuid(st.st_uid)->pw_name; struct passwd * getpwnam(char * name); 知道用户名,用getpwnam获取用户的相关信息。 int getpw(uid_t uid, char *buf); 从/etc/passwd中查找符合参数uid所指定的用户账号数据, buf用于存放返回的用户信息。buf 字符串格式如下: 账号:密码:用户识别码(uid):组识别码(gid):全名:根目录:shell 返回值:返回 0 表示成功, 有错误发生时返回-1. 范例 #include #include main() { char buffer[80]; getpw(0, buffer); printf("%s\n", buffer); }执行: root:123:0:0:root:/root:/bin/bash struct passwd * pwdread(FILE * stream,struct passwd *p); 读取一个用户信息进来,填入p。返回p为成功,NULL为失败。 struct passwd * pwdalloc(void); 给passwd分配一块内存。 二、struct group #include #include struct group { char *gr_name; /* 组名 */ char *gr_passwd; /* 密码 */ __gid_t gr_gid; /* 组ID */ char **gr_mem; /* 组成员名单 */ }struct group * getgrgid(gid_t gid); 知道用户组gid(group id),用getgrgid获取用户组的相关信息。 用法:char * fileGrp = getgrgid(st.st_gid)->gr_name; 注意:文中的st为struct stat结构体,详见上一篇博文。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |